import java.util.HashMap;
import java.rmi.*;
import java.rmi.server.*;

public class Banque implements BanqueInterface{
	private HashMap<String, Compte> comptes;
	
	public Banque() {
		comptes = new HashMap<String, Compte>();
	}

	public void ouvrirCompte(String nom, String password) throws Exception {
		if(comptes.containsKey(nom))
		{
			throw new Exception("Ce compte existe déjà !");
		}
		else {
		
			Compte lecompte = new Compte(nom, password);
			comptes.put(nom, lecompte);
		}
	}
	
	public Compte verifie(String nom, String password) throws Exception {
		
		if(comptes.containsKey(nom) && password.equals(comptes.get(nom).getPassword())){
			Compte lecompte = comptes.get(nom);
			
			return lecompte;
		}
		else{
			
		throw new Exception("Mot de passe incorrect.");
		}
		
	}
	
	public double fermerCompte(String nom, String password) throws Exception {
		
		if(comptes.containsKey(nom) && password.equals(comptes.get(nom).getPassword())){
			Compte lecompte = verifie(nom, password);
			double solde = lecompte.getSolde();
			comptes.remove(nom);
			return solde;
		}
		else{
			
		throw new Exception("Mot de passe incorrect.");
		}
		
		
	}
	
	
	public void deposer(double somme, Compte c){
		
		double solde = c.getSolde();
				solde = solde+somme;
		c.setSolde(solde);
	
	}
	
	public void retirer(double somme, Compte c) {
		double solde = c.getSolde();
		solde = solde-somme;
c.setSolde(solde);
	
	}
	
	public double balance(Compte c){
		return c.getSolde();
		
	}

}
